package org.example.util;


import org.example.common.entity.Menu;

import java.util.ArrayList;
import java.util.List;

public class MenuTreeUtil {

    public static List<Menu> getMenuTree(List<Menu> menus) {
        List<Menu> menuTree = new ArrayList<>();

        for (Menu menu : menus) {
            // 找到父级菜单{
            //            path: '/login',
            //            name: 'login',
            //            component: () => import('../views/login/index.vue')
            //        },
            if ("0".equals(menu.getType())) {
                menuTree.add(menu);
            }
            // 递归 查找子菜单
            getChildMenu(menu, menus);

        }

        return menuTree;
    }

    // 递归
    public static void getChildMenu(Menu menu, List<Menu> menus) {
        for (Menu m : menus) {
            if (menu.getId().equals(m.getParentId())) {
                if (menu.getChildren() == null) {
                    menu.setChildren(new ArrayList<>());
                }
                menu.getChildren().add(m);
                getChildMenu(m, menus);
            }
        }
    }

}

